The task of detecting and characterizing the output capabilities of printers and other output devices has been a longstanding challenge to users, application programmers, those writing device drivers and others. With no way to reliably or systematically verify printer capabilities, applications for example must make assumptions about what fonts, shading, gradient or other functions or capabilities a printer may present, by default. Part of the challenge in profiling individual printer resources is that there has been no standard way to interrogate a printer or other device with a standard protocol of tests and exercises, capture the results and return the results to the user, or to an application or the operating system. In the absence of coherent printer test protocols, resort has instead been made to different types of ad hoc printer test approaches.
One approach is to do no preprint testing—that is, not to attempt to characterize the output device, and simply send output, such as text and graphics from a word processing platform, to the printer without modification or based on a set of presumed output capabilities. This may generate successful print output when dealing with relatively simple textual or other documents, but more complex or composite data such as multipart or multiformat documents, spreadsheets, charts or other images or data make it increasingly likely that print anomalies may occur. For example a printer which is unable to scale an image, supply a drop shadowing effect or deliver certain fonts may generate garbled or half-formed characters, half tones or other output.
According to another approach, an application or printer driver may attempt to interrogate a printer or other output device to permit the device to respond with a table or other summary of the device's output capabilities. Typically however the table or store which enumerates the printer's output capabilities is a fixed listing, for instance stored in firmware, which is not capable of being exercised or verified. However the embedded tables in a printer or other device do not always accurately reflect the capabilities of that device. In other cases the device capabilities may be updated in firmware or otherwise but not reflected in that table or other resource. Therefore an internal device table may not return a valid or fully valid response which the application wishing to print or otherwise output on that device can rely upon.
An alternate approach to characterizing the output capabilities of printers has been the test-page approach, in which an application such as a word processing package or an image processing programs transmits a known, fixed test page to the printer. The user then has to take the printed output off the printer and visually examine the printed page for artifacts. While this practice may expose gaps in printer output capability, the process is not exhaustive, relies upon the user's visual review and remains basically a manual process subject to error. Other problems in verifying printer and other capabilities exist.